#!/bin/bash

#==============================================================================
# 脚本管理器 (Script Manager)
#==============================================================================
# 
# 功能描述:
#   统一管理和快速启动工作区中的所有脚本工具
#   提供交互式菜单界面，方便选择和使用各种脚本
#
# 作者: Pedro.Pei
# 版本: 1.0
# 更新日期: 2024
#
# 使用方法:
#   ./script_manager.sh
#
# 功能特性:
#   🎯 交互式菜单界面
#   📋 脚本功能说明和使用提示
#   🚀 一键启动各种工具脚本
#   📁 智能路径处理和参数传递
#   🎨 彩色输出和用户友好界面
#
#==============================================================================

# 获取脚本所在目录
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
SRC_DIR="$SCRIPT_DIR/src"

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
WHITE='\033[1;37m'
NC='\033[0m' # No Color

# 清屏函数
clear_screen() {
    clear
}

# 显示标题
show_header() {
    echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
    echo -e "${CYAN}║                    🛠️  脚本工具管理器 v1.0                    ║${NC}"
    echo -e "${CYAN}║                     Script Manager                           ║${NC}"
    echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
    echo ""
}

# 显示主菜单
show_menu() {
    echo -e "${WHITE}请选择要使用的脚本工具:${NC}"
    echo ""
    echo -e "${YELLOW}📁 文件管理工具:${NC}"
    echo -e "  ${GREEN}1.${NC} 文件分类整理器    - 按类型自动整理文件到不同文件夹"
    echo -e "  ${GREEN}2.${NC} 重复文件清理器    - 查找并处理重复文件"
    echo -e "  ${GREEN}3.${NC} 文件名前缀工具    - 为文件添加随机前缀标识"
    echo -e "  ${GREEN}4.${NC} 批量重命名工具    - 多种模式批量重命名文件"
    echo ""
    echo -e "${YELLOW}🎬 多媒体工具:${NC}"
    echo -e "  ${GREEN}5.${NC} 音频提取器        - 从视频文件中提取音频"
    echo -e "  ${GREEN}6.${NC} 图标生成器        - 生成移动应用图标套装"
    echo ""
    echo -e "${YELLOW}📊 分析工具:${NC}"
    echo -e "  ${GREEN}7.${NC} 文件统计分析器    - 深度分析目录文件分布情况"
    echo -e "  ${GREEN}8.${NC} 项目结构生成器    - 生成项目目录树形结构"
    echo ""
    echo -e "${YELLOW}⚙️  系统工具:${NC}"
    echo -e "  ${GREEN}9.${NC} 添加到系统PATH    - 将脚本添加到系统路径"
    echo -e "  ${GREEN}10.${NC} 创建桌面快捷方式  - 在桌面创建脚本快捷方式"
    echo -e "  ${GREEN}11.${NC} 查看脚本帮助     - 显示各脚本的详细使用说明"
    echo ""
    echo -e "  ${RED}0.${NC} 退出管理器"
    echo ""
    echo -e -n "${CYAN}请输入选项 (0-11): ${NC}"
}

# 执行文件分类整理器
run_file_sorting() {
    clear_screen
    echo -e "${CYAN}🗂️  文件分类整理器${NC}"
    echo -e "${YELLOW}功能: 根据文件扩展名自动将文件分类到不同子文件夹${NC}"
    echo ""
    echo -e -n "请输入要整理的目录路径 (或按回车使用当前目录): "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        target_dir="."
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "${GREEN}开始整理文件...${NC}"
    "$SRC_DIR/file_sorting_script.sh" "$target_dir"
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行重复文件清理器
run_duplicate_cleaner() {
    clear_screen
    echo -e "${CYAN}🔍 重复文件清理器${NC}"
    echo -e "${YELLOW}功能: 查找并处理指定目录中的重复文件${NC}"
    echo ""
    echo -e -n "请输入要检查的目录路径: "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        echo -e "${RED}错误: 请提供目录路径${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "${GREEN}开始查找重复文件...${NC}"
    "$SRC_DIR/delete_duplicates.sh" "$target_dir"
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行文件名前缀工具
run_prefix_tool() {
    clear_screen
    echo -e "${CYAN}🏷️  文件名前缀工具${NC}"
    echo -e "${YELLOW}功能: 为指定目录中的文件添加特殊格式的随机前缀${NC}"
    echo ""
    echo -e -n "请输入目标目录路径: "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        echo -e "${RED}错误: 请提供目录路径${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "是否启用递归模式 (处理子文件夹)? (y/N): "
    read recursive
    
    echo ""
    echo -e "${GREEN}开始添加前缀...${NC}"
    if [[ "$recursive" =~ ^[Yy]$ ]]; then
        "$SRC_DIR/add_random_prefix.sh" "$target_dir" --recursive
    else
        "$SRC_DIR/add_random_prefix.sh" "$target_dir"
    fi
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行批量重命名工具
run_batch_rename() {
    clear_screen
    echo -e "${CYAN}🏷️  批量重命名工具${NC}"
    echo -e "${YELLOW}功能: 提供多种模式批量重命名文件${NC}"
    echo ""
    echo -e "${WHITE}重命名模式:${NC}"
    echo -e "  ${GREEN}1.${NC} 顺序编号 (file_001.txt, file_002.txt...)"
    echo -e "  ${GREEN}2.${NC} 大小写转换 (转换为大写或小写)"
    echo -e "  ${GREEN}3.${NC} 字符串替换 (替换文件名中的特定字符)"
    echo -e "  ${GREEN}4.${NC} 扩展名修改 (批量修改文件扩展名)"
    echo -e "  ${GREEN}5.${NC} 日期前缀 (添加日期前缀)"
    echo -e "  ${GREEN}6.${NC} 自定义模板 (使用自定义命名模板)"
    echo ""
    echo -e -n "请选择重命名模式 (1-6): "
    read mode
    
    echo -e -n "请输入目标目录路径: "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        echo -e "${RED}错误: 请提供目录路径${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e -n "是否启用预览模式? (仅预览不执行) (Y/n): "
    read preview_mode
    
    local preview_flag=""
    if [[ "$preview_mode" != "n" && "$preview_mode" != "N" ]]; then
        preview_flag="--preview"
    fi
    
    echo ""
    echo -e "${GREEN}开始批量重命名...${NC}"
    
    case "$mode" in
        1)
            echo -e -n "请输入文件名前缀 (如: photo): "
            read prefix
            "$SRC_DIR/batch_rename.sh" "$target_dir" -m number -p "${prefix:-file}" $preview_flag
            ;;
        2)
            echo -e -n "转换为大写(u)还是小写(l)? (u/l): "
            read case_type
            if [[ "$case_type" == "u" ]]; then
                "$SRC_DIR/batch_rename.sh" "$target_dir" -m case -p "upper" $preview_flag
            else
                "$SRC_DIR/batch_rename.sh" "$target_dir" -m case -p "lower" $preview_flag
            fi
            ;;
        3)
            echo -e -n "请输入要替换的字符串: "
            read old_str
            echo -e -n "请输入新的字符串: "
            read new_str
            "$SRC_DIR/batch_rename.sh" "$target_dir" -m replace -p "$old_str,$new_str" $preview_flag
            ;;
        4)
            echo -e -n "请输入新的扩展名 (不含点号): "
            read new_ext
            "$SRC_DIR/batch_rename.sh" "$target_dir" -m extension -p "$new_ext" $preview_flag
            ;;
        5)
            echo -e -n "日期作为前缀(p)还是后缀(s)? (p/s): "
            read date_pos
            if [[ "$date_pos" == "p" ]]; then
                "$SRC_DIR/batch_rename.sh" "$target_dir" -m date -p "prefix" $preview_flag
            else
                "$SRC_DIR/batch_rename.sh" "$target_dir" -m date -p "suffix" $preview_flag
            fi
            ;;
        6)
            echo -e -n "请输入命名模板 (如: photo_{num}_{date}): "
            read template
            "$SRC_DIR/batch_rename.sh" "$target_dir" -m custom -p "$template" $preview_flag
            ;;
        *)
            echo -e "${RED}无效的模式选择${NC}"
            ;;
    esac
    
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行音频提取器
run_audio_extractor() {
    clear_screen
    echo -e "${CYAN}🎵 音频提取器${NC}"
    echo -e "${YELLOW}功能: 批量从视频文件中提取音频并转换为MP3格式${NC}"
    echo ""
    echo -e -n "请输入包含视频文件的目录路径: "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        echo -e "${RED}错误: 请提供目录路径${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "${GREEN}开始提取音频...${NC}"
    "$SRC_DIR/extract_audio.sh" "$target_dir"
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行图标生成器
run_icon_generator() {
    clear_screen
    echo -e "${CYAN}📱 图标生成器${NC}"
    echo -e "${YELLOW}功能: 生成Android和iOS应用所需的全套图标尺寸${NC}"
    echo ""
    echo -e -n "请输入原始图片文件路径: "
    read image_path
    
    if [ -z "$image_path" ]; then
        echo -e "${RED}错误: 请提供图片文件路径${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    if [ ! -f "$image_path" ]; then
        echo -e "${RED}错误: 文件不存在 '$image_path'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e -n "请输入输出目录 (或按回车使用默认目录): "
    read output_dir
    
    echo -e -n "请输入图片质量 1-100 (或按回车使用默认95): "
    read quality
    
    echo ""
    echo -e "${GREEN}开始生成图标...${NC}"
    
    cmd="$SRC_DIR/generate_icons.sh '$image_path'"
    if [ ! -z "$output_dir" ]; then
        cmd="$cmd -o '$output_dir'"
    fi
    if [ ! -z "$quality" ]; then
        cmd="$cmd -q '$quality'"
    fi
    cmd="$cmd --verbose"
    
    eval "$cmd"
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行文件统计分析器
run_file_analyzer() {
    clear_screen
    echo -e "${CYAN}📊 文件统计分析器${NC}"
    echo -e "${YELLOW}功能: 深度分析目录文件分布，生成详细统计报告${NC}"
    echo ""
    echo -e -n "请输入要分析的目录路径 (或按回车使用当前目录): "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        target_dir="."
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "${WHITE}分析选项:${NC}"
    echo -e "  ${GREEN}1.${NC} 基本分析 (当前目录)"
    echo -e "  ${GREEN}2.${NC} 递归分析 (包含所有子目录)"
    echo -e "  ${GREEN}3.${NC} 高级分析 (递归+包含隐藏文件)"
    echo ""
    echo -e -n "请选择分析模式 (1-3): "
    read mode
    
    echo ""
    echo -e "${WHITE}输出格式:${NC}"
    echo -e "  ${GREEN}1.${NC} 文本格式 (人类可读)"
    echo -e "  ${GREEN}2.${NC} CSV格式 (Excel分析)"
    echo -e "  ${GREEN}3.${NC} JSON格式 (程序处理)"
    echo ""
    echo -e -n "请选择输出格式 (1-3): "
    read format
    
    # 构建命令参数
    local cmd="$SRC_DIR/file_analyzer.sh '$target_dir'"
    
    # 分析模式
    case "$mode" in
        2)
            cmd="$cmd -r"
            ;;
        3)
            cmd="$cmd -r --include-hidden"
            ;;
    esac
    
    # 输出格式
    case "$format" in
        2)
            cmd="$cmd -f csv"
            ;;
        3)
            cmd="$cmd -f json"
            ;;
    esac
    
    # 添加详细输出
    cmd="$cmd -v"
    
    echo ""
    echo -e "${GREEN}开始分析文件...${NC}"
    echo -e "${BLUE}执行命令: $cmd${NC}"
    echo ""
    
    eval "$cmd"
    
    echo ""
    read -p "按回车键返回主菜单..."
}

# 执行项目结构生成器
run_project_tree() {
    clear_screen
    echo -e "${CYAN}🌳 项目结构生成器${NC}"
    echo -e "${YELLOW}功能: 生成项目目录的可视化树形结构${NC}"
    echo ""
    echo -e -n "请输入要分析的目录路径 (或按回车使用当前目录): "
    read target_dir
    
    if [ -z "$target_dir" ]; then
        target_dir="."
    fi
    
    if [ ! -d "$target_dir" ]; then
        echo -e "${RED}错误: 目录不存在 '$target_dir'${NC}"
        read -p "按回车键继续..."
        return
    fi
    
    echo ""
    echo -e "${WHITE}输出格式:${NC}"
    echo -e "  ${GREEN}1.${NC} ASCII树形结构 (控制台显示)"
    echo -e "  ${GREEN}2.${NC} Markdown格式 (文档编写)"
    echo -e "  ${GREEN}3.${NC} JSON格式 (程序处理)"
    echo -e "  ${GREEN}4.${NC} HTML格式 (浏览器查看)"
    echo ""
    echo -e -n "请选择输出格式 (1-4): "
    read format
    
    echo ""
    echo -e "${WHITE}显示选项:${NC}"
    echo -e "  ${GREEN}1.${NC} 基本显示"
    echo -e "  ${GREEN}2.${NC} 显示文件大小"
    echo -e "  ${GREEN}3.${NC} 显示统计信息"
    echo -e "  ${GREEN}4.${NC} 显示大小+统计+彩色"
    echo ""
    echo -e -n "请选择显示选项 (1-4): "
    read display_option
    
    echo ""
    echo -e -n "限制显示深度 (留空表示无限制): "
    read depth
    
    echo ""
    echo -e -n "排除文件模式 (如: *.log,node_modules，留空表示不排除): "
    read exclude
    
    echo ""
    echo -e "${WHITE}输出选择:${NC}"
    echo -e "  ${GREEN}1.${NC} 控制台显示 (直接在终端显示结果)"
    echo -e "  ${GREEN}2.${NC} 输出到文件 (保存到指定文件)"
    echo ""
    echo -e -n "请选择输出方式 (1-2): "
    read output_choice
    
    local output_file=""
    if [ "$output_choice" = "2" ]; then
        echo ""
        echo -e -n "请输入输出文件路径 (留空使用默认名称): "
        read output_file
        if [ -z "$output_file" ]; then
            # 根据输出格式确定文件扩展名
            local file_ext="txt"
            case "$format" in
                2)
                    file_ext="md"
                    ;;
                3)
                    file_ext="json"
                    ;;
                4)
                    file_ext="html"
                    ;;
            esac
            # 在目标目录创建默认文件名
            output_file="$target_dir/pst_project_structure.$file_ext"
            echo -e "${CYAN}使用默认文件名: $output_file${NC}"
        fi
    fi
    
    # 构建命令参数
    local cmd="$SRC_DIR/project_tree.sh '$target_dir'"
    
    # 输出格式
    case "$format" in
        2)
            cmd="$cmd -f markdown"
            ;;
        3)
            cmd="$cmd -f json"
            ;;
        4)
            cmd="$cmd -f html"
            ;;
    esac
    
    # 显示选项
    case "$display_option" in
        2)
            cmd="$cmd --size"
            ;;
        3)
            cmd="$cmd --stats"
            ;;
        4)
            cmd="$cmd --size --stats --color"
            ;;
    esac
    
    # 深度限制
    if [ -n "$depth" ]; then
        cmd="$cmd -d $depth"
    fi
    
    # 排除模式
    if [ -n "$exclude" ]; then
        cmd="$cmd --exclude '$exclude'"
    fi
    
    # 输出文件
    if [ -n "$output_file" ]; then
        cmd="$cmd -o '$output_file'"
    fi
    
    # 添加详细输出
    cmd="$cmd -v"
    
    echo ""
    echo -e "${GREEN}开始生成项目结构...${NC}"
    echo -e "${BLUE}执行命令: $cmd${NC}"
    echo ""
    
    eval "$cmd"
    
    # 如果输出到文件，显示成功消息
    if [ -n "$output_file" ] && [ -f "$output_file" ]; then
        echo ""
        echo -e "${GREEN}✅ 项目结构已成功生成到文件: $output_file${NC}"
        echo -e "${CYAN}💡 提示: 您可以使用以下命令查看文件内容:${NC}"
        case "$format" in
            2)
                echo -e "   ${YELLOW}cat '$output_file'${NC} 或 ${YELLOW}open '$output_file'${NC}"
                ;;
            3)
                echo -e "   ${YELLOW}cat '$output_file' | jq .${NC} 或 ${YELLOW}open '$output_file'${NC}"
                ;;
            4)
                echo -e "   ${YELLOW}open '$output_file'${NC} (在浏览器中查看)"
                ;;
            *)
                echo -e "   ${YELLOW}cat '$output_file'${NC} 或 ${YELLOW}open '$output_file'${NC}"
                ;;
        esac
    fi
    
    echo ""
    read -p "按回车键返回主菜单..."
}

# 添加到系统PATH
add_to_path() {
    clear_screen
    echo -e "${CYAN}⚙️  添加到系统PATH${NC}"
    echo -e "${YELLOW}功能: 将脚本目录添加到系统PATH，实现全局访问${NC}"
    echo ""
    
    # 检查当前PATH中是否已包含脚本目录
    if echo "$PATH" | grep -q "$SCRIPT_DIR"; then
        echo -e "${GREEN}✅ 脚本目录已在系统PATH中${NC}"
        echo -e "当前PATH包含: ${SCRIPT_DIR}"
    else
        echo -e "${YELLOW}脚本目录尚未添加到系统PATH${NC}"
        echo -e "脚本目录: ${SCRIPT_DIR}"
        echo ""
        echo -e "${WHITE}选择添加方式:${NC}"
        echo -e "  ${GREEN}1.${NC} 临时添加 (仅当前终端会话有效)"
        echo -e "  ${GREEN}2.${NC} 永久添加 (修改 ~/.zshrc 文件)"
        echo -e "  ${GREEN}3.${NC} 取消操作"
        echo ""
        echo -e -n "请选择 (1-3): "
        read choice
        
        case "$choice" in
            1)
                export PATH="$SCRIPT_DIR:$PATH"
                echo -e "${GREEN}✅ 已临时添加到PATH${NC}"
                echo -e "现在可以直接使用脚本名称运行，如: ${CYAN}file_sorting_script.sh${NC}"
                ;;
            2)
                echo "" >> ~/.zshrc
                echo "# Pedro's Script Tools" >> ~/.zshrc
                echo "export PATH=\"$SCRIPT_DIR:\$PATH\"" >> ~/.zshrc
                echo -e "${GREEN}✅ 已永久添加到PATH${NC}"
                echo -e "请重新启动终端或运行: ${CYAN}source ~/.zshrc${NC}"
                ;;
            3)
                echo -e "${YELLOW}操作已取消${NC}"
                ;;
            *)
                echo -e "${RED}无效选择${NC}"
                ;;
        esac
    fi
    
    echo ""
    read -p "按回车键返回主菜单..."
}

# 创建桌面快捷方式
create_desktop_shortcuts() {
    clear_screen
    echo -e "${CYAN}🖥️  创建桌面快捷方式${NC}"
    echo -e "${YELLOW}功能: 在桌面创建脚本管理器的快捷方式${NC}"
    echo ""
    
    desktop_dir="$HOME/Desktop"
    shortcut_path="$desktop_dir/脚本工具管理器.command"
    
    if [ -f "$shortcut_path" ]; then
        echo -e "${YELLOW}桌面快捷方式已存在${NC}"
        echo -e -n "是否覆盖现有快捷方式? (y/N): "
        read overwrite
        if [[ ! "$overwrite" =~ ^[Yy]$ ]]; then
            echo -e "${YELLOW}操作已取消${NC}"
            read -p "按回车键返回主菜单..."
            return
        fi
    fi
    
    # 创建快捷方式脚本
    cat > "$shortcut_path" << EOF
#!/bin/bash
cd "$SCRIPT_DIR"
"$SCRIPT_DIR/script_manager.sh"
EOF
    
    # 设置可执行权限
    chmod +x "$shortcut_path"
    
    echo -e "${GREEN}✅ 桌面快捷方式创建成功${NC}"
    echo -e "快捷方式位置: ${shortcut_path}"
    echo -e "双击桌面上的 ${CYAN}'脚本工具管理器.command'${NC} 即可启动"
    echo ""
    read -p "按回车键返回主菜单..."
}

# 查看脚本帮助
show_script_help() {
    clear_screen
    echo -e "${CYAN}📖 脚本使用帮助${NC}"
    echo ""
    echo -e "${WHITE}各脚本详细说明:${NC}"
    echo ""
    
    echo -e "${YELLOW}1. 文件分类整理器 (file_sorting_script.sh)${NC}"
    echo -e "   功能: 根据文件扩展名自动分类文件"
    echo -e "   支持: 视频、音频、图片、文档、压缩包、代码文件"
    echo -e "   用法: ./file_sorting_script.sh <目录路径>"
    echo ""
    
    echo -e "${YELLOW}2. 重复文件清理器 (delete_duplicates.sh)${NC}"
    echo -e "   功能: 查找并处理重复文件"
    echo -e "   特性: 支持删除或移动到临时文件夹"
    echo -e "   用法: ./delete_duplicates.sh <目录路径>"
    echo ""
    
    echo -e "${YELLOW}3. 文件名前缀工具 (add_random_prefix.sh)${NC}"
    echo -e "   功能: 为文件添加时间戳+随机字符串前缀"
    echo -e "   特性: 支持递归处理子文件夹"
    echo -e "   用法: ./add_random_prefix.sh <目录路径> [--recursive]"
    echo ""
    
    echo -e "${YELLOW}4. 批量重命名工具 (batch_rename.sh)${NC}"
    echo -e "   功能: 提供多种模式批量重命名文件"
    echo -e "   模式: 顺序编号、大小写转换、字符串替换、扩展名修改、日期前缀、自定义模板"
    echo -e "   特性: 预览模式、撤销功能、递归处理、冲突解决"
    echo -e "   用法: ./batch_rename.sh <目录路径> --mode <模式> [选项]"
    echo ""
    
    echo -e "${YELLOW}5. 音频提取器 (extract_audio.sh)${NC}"
    echo -e "   功能: 从视频文件中提取音频为MP3格式"
    echo -e "   支持: MP4, MOV, AVI, MKV, WMV, FLV, WebM, M4V"
    echo -e "   用法: ./extract_audio.sh <视频目录路径>"
    echo ""
    
    echo -e "${YELLOW}6. 图标生成器 (generate_icons.sh)${NC}"
    echo -e "   功能: 生成Android和iOS应用图标套装"
    echo -e "   特性: 支持多种输入格式，可调节质量"
    echo -e "   用法: ./generate_icons.sh <图片路径> [-o 输出目录] [-q 质量]"
    echo ""
    
    echo -e "${YELLOW}7. 文件统计分析器 (file_analyzer.sh)${NC}"
    echo -e "   功能: 深度分析目录文件分布情况，生成详细统计报告"
    echo -e "   特性: 文件类型分布、大小分析、时间趋势、大文件识别"
    echo -e "   格式: 支持文本、CSV、JSON三种输出格式"
    echo -e "   用法: ./file_analyzer.sh <目录路径> [-r] [-f 格式] [-o 输出文件]"
    echo ""
    
    echo -e "${YELLOW}8. 项目结构生成器 (project_tree.sh)${NC}"
    echo -e "   功能: 生成项目目录的可视化树形结构"
    echo -e "   特性: 多种输出格式、深度控制、文件过滤、大小显示"
    echo -e "   格式: 支持ASCII、Markdown、JSON、HTML四种输出格式"
    echo -e "   用法: ./project_tree.sh [目录路径] [-f 格式] [-d 深度] [--exclude 模式]"
    echo ""
    
    read -p "按回车键返回主菜单..."
}

# 主循环
main() {
    while true; do
        clear_screen
        show_header
        show_menu
        
        read choice
        
        case "$choice" in
            1)
                run_file_sorting
                ;;
            2)
                run_duplicate_cleaner
                ;;
            3)
                run_prefix_tool
                ;;
            4)
                run_batch_rename
                ;;
            5)
                run_audio_extractor
                ;;
            6)
                run_icon_generator
                ;;
            7)
                run_file_analyzer
                ;;
            8)
                run_project_tree
                ;;
            9)
                add_to_path
                ;;
            10)
                create_desktop_shortcuts
                ;;
            11)
                show_script_help
                ;;
            0)
                clear_screen
                echo -e "${GREEN}感谢使用脚本工具管理器！${NC}"
                echo -e "${CYAN}再见！👋${NC}"
                exit 0
                ;;
            *)
                echo -e "${RED}无效选择，请输入 0-11${NC}"
                sleep 2
                ;;
        esac
    done
}

# 启动主程序
main